The present invention generally relates to network routing and, in particular, to methods and systems that are capable of providing efficient network routing using location-based addressing.
Routing information for a destination node in a computer network may generally be obtained in a number of ways. In one arrangement known as direct source routing, each node contains an address table which contains routing information for various other nodes in the network. A look-up operation can be performed on the address table to retrieve the appropriate routing information for a destination node. While look-up operations performed on the address table are relatively fast, maintaining the address table often becomes burdensome. For example, in a network containing a large number of nodes, storing routing information for each and every node in a single address table in each node consumes a very large amount of memory capacity. Furthermore, updating an address table also becomes problematic as frequent updates may need to be propagated to all the nodes to keep their address tables current.
In another arrangement, when a source node needs to identify the routing information for a destination node, the source node broadcasts messages to all its neighboring nodes to seek such information. If a neighboring node does not have the sought-after routing information, the neighboring node in turn broadcasts its own messages to its neighboring nodes seeking the routing information for the destination node. In this manner, the nodes essentially contact each other until the sought-after routing information for the destination node is obtained. The appropriate routing information is then relayed back to the source node to allow data to be sent to the destination node. The foregoing may be viable within a network which contains a relatively small number of nodes. However, as the number of nodes in the network increases, it can be easily seen that the number of broadcast messages collectively issued by all the nodes may become unmanageably large, thereby unnecessarily consuming bandwidth and flooding the network. Clearly, if the network is flooded with routing messages, it would become impossible for that network to effectively carry any useful user data.
Hence, it would be desirable to provide methods and systems that are capable of, amongst other things, providing routing information in a network in an efficient manner.